#导入需要的包
import json
from pyecharts.charts import Map
from pyecharts import options as opts
import pandas as pd
# 数据集路径
file_path = r"C://Users//yjyang24//Desktop//第八章//第8章案例//案例6//dataset//美国的百日咳地区患病人数.csv"
data = pd.read_csv(file_path)
# 提取州名和患病人数
data_pairs = data[["State", "Cases"]].values.tolist()
print(data_pairs) 
# GeoJSON 文件路径
geojson_path = r"C://Users//yjyang24//Desktop//第八章//第8章案例//案例6//dataset//USA.json"
# 加载 GeoJSON 数据
with open(geojson_path, "r", encoding="utf-8") as f:
    usa_geojson = json.load(f)
# 创建 Map 图
map_chart = (Map(init_opts=opts.InitOpts(width="1200px", height="600px", bg_color="#EEEEE8"))
    .add(
        series_name="患病情况",
        data_pair=data_pairs,
        maptype="美国", # 使用注册的地图名称
        is_map_symbol_show=False
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(title="美国百日咳患病情况分布"),
        visualmap_opts=opts.VisualMapOpts(
            max_=300,
            min_=0,
            is_piecewise=True,
            pieces=[
                {"min": 0, "max": 50, "label": "低风险", "color": "#7CC5FF"},
                {"min": 51, "max": 100, "label": "中风险", "color": "#FFD700"},
                {"min": 101, "label": "高风险", "color": "#FF4500"}
            ]
        )
    )
)
# 渲染地图
map_chart.render(r"C://Users//yjyang24//Desktop//第八章//第8章案例//案例6//dataset//us_disease_map.html")